package com.thingsgrid.notice.service;

import com.thingsgrid.notice.entity.NoticeEntiy;
import org.springblade.core.tool.api.R;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;
/**
 * INoticeService
 * @author MQ
 */
public interface INoticeService<T> {
   /**
    * 根据Id查询
    * @param msgId
    * @return
    */
   R findOneById(String msgId);

   /**
    * 根据id集合查询
    * @param ids
    * @return
    */
   List<T> findOneByIds(List<String> ids);

   /**
    * 保存实体
    * @param t
    * @return
    */
   T save(T t);

   /**
    * 更新实体
    * @param t
    * @return
    */
   T update(T t);

   /**
    * 分页查询
    * @param t
    * @param page
    * @return
    */
   Page<NoticeEntiy> page(T t, Pageable page);

   /**
    * 根据id集合删除
    * @param ids
    * @return
    */
   R deleteByIds(String ids);

   /**
    * 删除所有
    * @return
    */
   R deleteAll();

   /**
    * 根据查询key和val查询实体集合
    * @param findName
    * @param findVal
    * @return
    */
   List<T> findNoticeByName(String findName,List<String> findVal);
}
